import { IPSEditorContainer } from '../ipseditor-container';
import { IPSPanelItem } from './ipspanel-item';
import { IPSSysImage } from '../../res/ipssys-image';

/**
 *
 * 子接口类型识别属性[]
 * 继承父接口类型值[FIELD]
 * @export
 * @interface IPSPanelField
 */
export interface IPSPanelField extends IPSPanelItem, IPSEditorContainer {
  /**
   * 默认状态
   * @description 值模式 [面板属性项默认状态] {1：只读、 2：禁用 }
   * @type {( number | 1 | 2)}
   * @default 0
   */
  fieldStates: number | 1 | 2;

  /**
   * 标签直接样式
   * @type {string}
   */
  labelCssStyle: string;

  /**
   * 标签动态样式表
   * @type {string}
   */
  labelDynaClass: string;

  /**
   * 输出代码表配置模式
   * @description 值模式 [实体属性界面配置输出代码表配置] {0：无、 1：只输出选择项、 2：输出子项 }
   * @type {( number | 0 | 1 | 2)}
   * @default 0
   */
  outputCodeListConfigMode: number | 0 | 1 | 2;

  /**
   * 属性项图片对象
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 属性项图片对象
   *
   * @type {IPSSysImage}
   */
  get psSysImage(): IPSSysImage | null;

  /**
   * 属性项图片对象（必须存在）
   *
   * @type {IPSSysImage}
   */
  getPSSysImageMust(): IPSSysImage;

  /**
   * 值格式化
   * @type {string}
   */
  valueFormat: string;

  /**
   * 视图模型属性名称
   * @type {string}
   */
  viewFieldName: string;

  /**
   * 允许空值输入
   * @type {boolean}
   * @default true
   */
  allowEmpty: boolean;

  /**
   * 转换为代码项文本
   * @type {boolean}
   * @default false
   */
  convertToCodeItemText: boolean;

  /**
   * 隐藏属性项
   * @type {boolean}
   */
  hidden: boolean;

  /**
   * 需要代码表配置
   * @type {boolean}
   * @default false
   */
  needCodeListConfig: boolean;
}
